home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / prolog / modprolg / mod-prol.lha / Prolog / Examples / lib_queue.mod < prev    next >
Text File  |  1992-05-21  |  480b  |  19 lines

  1. signature lib_queue_sig =
  2.   sig
  3.     pred empty/1 and enter/3 and remove/2 and rest/2 and isempty/1.
  4.   end.
  5.  
  6. structure lib_queue/lib_queue_sig =
  7.   struct
  8.     fun queue/1.
  9.     empty(queue([])).
  10.     enter(Item,queue(Q),queue([Item|Q])).
  11.     remove(queue([Item]),Item).
  12.     remove(queue([_|Q]),Item) :-
  13.         remove(queue(Q),Item).
  14.     rest(queue([Item]),queue([])).
  15.     rest(queue([Item|Q]),queue([Item|Rest])) :-
  16.         rest(queue(Q),queue(Rest)).
  17.     isempty(queue([])).
  18.   end.
  19.